Conventional approaches for creating and implementing network-based applications, such as web applications, have been limited in the ways in which those applications can communicate. In order to overcome these limitations, some applications perform operations in ways that were not intended. For example, an application might abuse capabilities of the hypertext transfer protocol (HTTP) to poll a server for updates while sending upstream notifications as distinct HTTP calls. This has created a number of inefficiencies, as such an approach forces servers to use a number of different underlying TCP connections for each client, one for sending information to the client and a new one for each incoming message. The wire protocol for operating this scheme is costly from an overhead perspective, negatively effecting latency and bandwidth. Additionally, maintaining state to correlate multiple client-to-server connections, such as one polling for changes and the other communicating information, is costly from a memory and CPU perspective.